import queue

from django.http import JsonResponse
from django.shortcuts import render, HttpResponse

# 所有的用户队列（这里先用字典示例，实战的时候可以用kafka,redis等）
USER_QUEUE = {
    # "123": queue.Queue(),  # 用户的id
}


def home(request):
    """用户访问聊天室，为用户创建自己的队列"""
    uid = request.GET.get("uid")
    USER_QUEUE[uid] = queue.Queue()  # 为进入聊天室的用户创建自己的队列
    return render(request, "home.html", {"uid": uid})


def send_msg(request):
    """获取用户发送的消息，保存在所以群聊用户的队列中"""
    text = request.GET.get("text")

    for index, value in USER_QUEUE.items():
        print(index,value)
        value.put(text)
        # print(value.get(),222)
    return HttpResponse("发送成功")


def get_msg(request):
    """获取自己队列中的数据"""
    uid = request.GET.get("uid")
    message = USER_QUEUE[uid]

    result = {
        "status": True,
        "data": None
    }
    try:
        data = message.get(timeout=10)  # 夯住10秒,如果没有数据的话就会报queue.Empty为空错误
        print(data,1111)
        result["data"] = data
    except queue.Empty as e:
        result["status"] = False
    return JsonResponse(result)
